package org.example.rubbish.mapper;


import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.example.rubbish.dto.ProductQuery;
import org.example.rubbish.entity.Product;

import java.util.List;

@Mapper
public interface ProductMapper {

    // 查询商品列表（带分页和条件）
    List<Product> selectProductList(@Param("query") ProductQuery query);

    // 查询商品总数
    Long countProductList(@Param("query") ProductQuery query);

    // 根据ID查询商品
    Product selectById(@Param("id") Long id);

    // 插入商品
    int insert(Product product);

    // 更新商品
    int update(Product product);

    // 软删除商品
    int softDelete(@Param("id") Long id);

    // 更新商品状态
    int updateStatus(@Param("id") Long id, @Param("status") Integer status);

    // 检查商品是否有未完成订单
    int countActiveOrders(@Param("productId") Long productId);
}
